package com.yuandian.customer.perception.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.api.customer_perception.po.BusinessAnalysisParams;
import com.yuandian.api.customer_perception.po.BusinessComparativeAnalysisParams;
import com.yuandian.api.customer_perception.vo.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 说明：业务分析mapper接口
 * @Author linshihe
 * @Date 2021/8/11 13:38
 */
@Repository
public interface BusinessAnalysisMapper {

    /**
     * 客户感知-业务分析-查询业务分析概况
     * @param params 请求参数
     * @return 系统分析概况vo对象
     */
	BusinessAnalysisOverviewVo queryBusinessAnalysisOverview(@Param("params") BusinessAnalysisParams params);


    /**
     * 客户感知-业务分析-查询业务告警占
     * @param params 系统分析请求参数modules/business/analysis/queryBusinessIndicatorTrend
     * @return 系统告警占比vo对象集合
     */
    List<BusinessAlarmProportionVo> queryBusinessAlarmProportion(@Param("params") BusinessAnalysisParams params);

    /**
     * 客户感知-业务分析-查询业务指标趋势
     * @param params 请求参数
     * @return 对象集合
     */
    List<BusinessIndicatorTrendVo> queryBusinessIndicatorTrend(@Param("params") BusinessAnalysisParams params);

    /**
     * 客户感知-业务分析-业务步骤分析列表
     * @param params 请求参数
     * @return 对象集合
     */
    List<BusinessStepAnalysisVo> queryBusinessStepAnalysisList(@Param("params") BusinessAnalysisParams params);

    /**
     * 客户感知-业务分析-分页查询业务步骤分析列表
     * @param params 请求参数
     * @return 对象集合
     */
    List<BusinessStepAnalysisVo> queryBusinessStepAnalysisPageList(
			@Param("params") BusinessAnalysisParams params,
			Page<BusinessStepAnalysisVo> page);


    /**
     * 客户感知-业务分析-分页查询业务操作员总览
     * @param params 请求参数
     * @return vo对象集合
     */
    List<BusinessOperatorOverviewVo> queryBusinessOperatorOverview(
            @Param("params") BusinessAnalysisParams params,
			Page<BusinessOperatorOverviewVo> page);

    /**
     * 客户感知-业务分析-查询业务操作员总览下载
     * @param params 请求参数
     * @return vo对象集合
     */
    List<BusinessOperatorOverviewVo> queryBusinessOperatorOverviewExport(@Param("params") BusinessAnalysisParams params);

    /**
     * 客户感知-业务分析-查询操作员业务办理量TOPN
     * @param params 系统分析请求参数
     * @return 操作员业务办理量TOPN vo对象集合
     */
    List<OperatorCompleteTopNVo> queryOperatorCompleteTopN(@Param("params") BusinessAnalysisParams params);

    /**
     * 客户感知-业务分析-查询营业员办理业务告警类型分布
     * @param params 系统分析请求参数
     * @return 操作员办理业务告警vo对象集合
     */
    List<OperatorBusinessAlarmVo> queryOperatorBusinessAlarm(@Param("params") BusinessAnalysisParams params);

    /**
     * 客户感知-性能优化-接口性能优化-查询性能指标概况
     * @param params 业务对比分析请求对象
     * @return 业务对比分析vo对象
     */
    BusinessComparativeAnalysisVo queryPerformanceIndexSurvey(@Param("params") BusinessComparativeAnalysisParams params);
}
